home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cpp_libs / cool / cool.lha / ice / pisces / flex / Changes < prev    next >
Encoding:
Internet Message Format  |  1991-09-04  |  4.1 KB

  1. From rpj%cadillac.cad.mcc.com@mcc.com Fri Feb  2 10:47:26 1990
  2. Return-Path: <@MCC.COM:rpj%cadillac.cad.mcc.com@mcc.com>
  3. Posted-Date: Fri, 2 Feb 90 08:59:18 CST
  4. Date: Fri, 2 Feb 90 08:59:18 CST
  5. From: rpj%cadillac.cad.mcc.com@mcc.com (Rich Johns)
  6. To: fburke@samwise.csc.ti.com
  7. Subject: FLEX
  8.  
  9.  
  10.  
  11. --------------------------Changes-----------------------
  12.  
  13. Changes between 2.1 beta-test release of June '89 and previous release:
  14.  
  15.     User-visible:
  16.  
  17.     - -p flag generates a performance report to stderr.  The report
  18.       consists of comments regarding features of the scanner rules
  19.       which result in slower scanners.
  20.  
  21.     - -b flag generates backtracking information to lex.backtrack.
  22.       This is a list of scanner states which require backtracking
  23.       and the characters on which they do so.  By adding rules
  24.       one can remove backtracking states.  If all backtracking states
  25.       are eliminated, the generated scanner will run faster.
  26.       Backtracking is not yet documented in the manual entry.
  27.  
  28.     - Variable trailing context now works, i.e., one can have
  29.       rules like "(foo)*/[ \t]*bletch".  Some trailing context
  30.       patterns still cannot be properly matched and generate
  31.       error messages.  These are patterns where the ending of the
  32.       first part of the rule matches the beginning of the second
  33.       part, such as "zx*/xy*", where the 'x*' matches the 'x' at
  34.       the beginning of the trailing context.  Lex won't get these
  35.       patterns right either.
  36.  
  37.     - Faster scanners.
  38.  
  39.     - End-of-file rules.  The special rule "<<EOF>>" indicates
  40.       actions which are to be taken when an end-of-file is
  41.       encountered and yywrap() returns non-zero (i.e., indicates
  42.       no further files to process).  See manual entry for example.
  43.  
  44.     - The -r (reject used) flag is gone.  flex now scans the input
  45.       for occurrences of the string "REJECT" to determine if the
  46.       action is needed.  It tries to be intelligent about this but
  47.       can be fooled.  One can force the presence or absence of
  48.       REJECT by adding a line in the first section of the form
  49.       "%used REJECT" or "%unused REJECT".
  50.  
  51.     - yymore() has been implemented.  Similarly to REJECT, flex
  52.       detects the use of yymore(), which can be overridden using
  53.       "%used" or "%unused".
  54.  
  55.     - Patterns like "x{0,3}" now work (i.e., with lower-limit == 0).
  56.  
  57.     - Removed '\^x' for ctrl-x misfeature.
  58.  
  59.     - Added '\a' and '\v' escape sequences.
  60.  
  61.     - \<digits> now works for octal escape sequences; previously
  62.       \0<digits> was required.
  63.  
  64.     - Better error reporting; line numbers are associated with rules.
  65.  
  66.     - yyleng is a macro; it cannot be accessed outside of the
  67.       scanner source file.
  68.  
  69.     - yytext and yyleng should not be modified within a flex action.
  70.  
  71.     - Generated scanners #define the name FLEX_SCANNER.
  72.  
  73.     - Rules are internally separated by YY_BREAK in lex.yy.c rather
  74.       than break, to allow redefinition.
  75.  
  76.     - The macro YY_USER_ACTION can be redefined to provide an action
  77.       which is always executed prior to the matched rule's action.
  78.     
  79.     - yyrestart() is a new action which can be used to restart
  80.       the scanner after it has seen an end-of-file (a "real" one,
  81.       that is, one for which yywrap() returned non-zero).  It takes
  82.       a FILE* argument indicating a new file to scan and sets
  83.       things up so that a subsequent call to yylex() will start
  84.       scanning that file.
  85.  
  86.     - Internal scanner names all preceded by "yy_"
  87.  
  88.     - lex.yy.c is deleted if errors are encountered during processing.
  89.  
  90.     - Comments may be put in the first section of the input by preceding
  91.       them with '#'.
  92.  
  93.  
  94.  
  95.     Other changes:
  96.  
  97.     - Some portability-related bugs fixed, in particular for machines
  98.       with unsigned characters or sizeof( int* ) != sizeof( int ).
  99.       Also, tweaks for VMS and Microsoft C (MS-DOS), and identifiers all
  100.       trimmed to be 31 or fewer characters.  Shortened file names
  101.       for dinosaur OS's.  Checks for allocating > 64K memory
  102.       on 16 bit'ers.  Amiga tweaks.  Compiles using gcc on a Sun-3.
  103.  
  104.     - Compressed and fast scanner skeletons merged.
  105.  
  106.     - Skeleton header files done away with.
  107.  
  108.     - Generated scanner uses prototypes and "const" for __STDC__.
  109.  
  110.     - -DSV flag is now -DSYS_V for System V compilation.
  111.  
  112.     - Removed all references to FTL language.
  113.  
  114.     - Software now covered by BSD Copyright.
  115.  
  116.     - flex will replace lex in subsequent BSD releases.
  117.  
  118.  
  119.